//////////////////////////////////////////////////////////////////////////////////////////////////////
// 项目名   : MoveAndForward
// 文件名   : MoveAndForward.h
// 作者     : Aiye
// 日期     : 2025/8/17 21:06
// 邮箱     : 2878548868@qq.com
// 摘要     : 介绍转移和完美转发
//////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef MOVEANDFORWARD_MOVEANDFORWARD_H
#define MOVEANDFORWARD_MOVEANDFORWARD_H
#include <iostream>

/*Move 转移*/
class Move
{
public:
    Move(){}

    Move(Move&& ) = default ; // 默认实现移动构造函数
};

/* Forward 完美转发*/
class Forward
{
public:

    /*
     * @brief 函数模板打印左值
     * @param[in] 模板T
     */
    void operator() (auto& t)
    {
        std::cout << "LeftValue" << t << std::endl;
    }

    /*
     * @brief 函数模板打印右值
     * @param[in] 模板T
     */
    void operator() (auto&& t)
    {
        std::cout << "RightValue" << t << std::endl;
    }
};
#endif //MOVEANDFORWARD_MOVEANDFORWARD_H